package com.siwei.mes.mapper.syncTc;

import com.siwei.mes.common.base.BaseMapper;
import com.siwei.mes.entity.sync.tc.SupplyTask;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 砼材-供货任务(SupplyTask)表数据库访问层
 *
 * @author linzi
 * @since 2024-05-22 21:08:28
 */
public interface SupplyTaskMapper extends BaseMapper<SupplyTask> {
    /**
     * 获取所有
     *
     * @param entity
     * @return
     */
    List<SupplyTask> getList(SupplyTask entity);

    /**
     * 根据id获取
     *
     * @param id
     * @return
     */
    SupplyTask loadById(@Param("id") Long id);

    /**
     * 根据supplyTaskId查询
     *
     * @param taskId
     * @return
     */
    SupplyTask selectByTaskId(@Param("taskId") Long taskId);

    /**
     * 获取最大的supplyTaskId
     *
     * @return
     */
    long getMaxSupplyTaskId();

    /**
     * 查询今天是否有ERP的供货任务
     * 物料类型+物料名称+物料规则+供货商  要按天数来（任务派发时间） task_start_time
     *
     * @param projectName          物料名称
     * @param projectSpecs         物料规格
     * @param projectCategory      物料类型
     * @param supplyCompanyCompany 供货商
     * @param factory              生产厂家
     * @return
     */
    SupplyTask selectByErpSupplyTaskToday(@Param("projectName") String projectName, @Param("projectSpecs") String projectSpecs,
                                          @Param("projectCategory") Integer projectCategory, @Param("supplyCompanyCompany") String supplyCompanyCompany,
                                          @Param("factory") String factory);

    /**
     * 根据任务单编号查询
     *
     * @param supplyTaskCode
     * @return
     */
    SupplyTask selectBySupplyTaskCode(@Param("supplyTaskCode") String supplyTaskCode);
}
